package com.zyf.project.kvdb.engine.partitioner;

/**
 * <h1>分区计算器</h1>
 *
 * @author Zhou Yifan
 */
public interface Partitioner {
    /**
     * 计算总的分区数
     *
     * @return int 值
     */
    int getPartitionCount();

    /**
     * 计算 key 的分区地址
     *
     * @param key 要计算的 key，byte[] 类型
     * @return 分区号，从 0 到 {@link #getPartitionCount()}（不含）
     */
    int partition(byte[] key);
}
